package com.goodfox.web.generic.account.service;

import java.util.List;
import java.util.Map;

import com.goodfox.web.generic.account.entity.Account;
import com.goodfox.web.generic.provide.entity.Pager;
import com.goodfox.web.generic.role.entity.Role;

public interface AccountService {
	
	/**
	 * 导出时使用人员列表
	 * @param map
	 * @return
	 */
	List<Account> exportAccountList(Map map);
	
	/**
	 * 查询人员账号分页列表
	 * @param start 记录起始点
	 * @param count 每次查询记录数（每页显示记录数）
	 * @param queryMap 查询条件Map
	 * @return
	 */
	Pager<Account> queryAccountPager(int currentPage,int numPerPage,Map map);
	
	/**
	 * 新增人员
	 * @param entity 新增实体
	 * @param loginAccount 操作人
	 */
	void addAccount(Account entity,String loginLogId);
	
	/**
	 * 更新人员
	 * @param oldEny 旧实体
	 * @param newEny 新实体
	 * @param loginAccount 操作人
	 */
	void modifyAccount(Account oldEny,Account newEny,String loginLogId);
	
	/**
	 * 移除人员
	 * @param entity 移除实体
	 */
	void removeAccount(Account entity,String loginLogId);
	
	/**
	 * 获取人员
	 * @param actId 
	 * @return
	 */
	Account getAccount(String actId);

	/**
	 * 系统内是否存在该账号
	 * @param actName 账号
	 * @return 
	 */
	boolean isHave(String actName);

	/**
	 * 获取人员
	 * @param actName 用户名
	 * @param actPass 密码
	 * @return
	 */
	Account getAccountByNamePwd(String actName, String actPassword);
	 
	/**
	 * 修改密码
	 * @param actId
	 * @param actPassword
	 */
	void modifyPassword(Account oldEny,Account newEny,String loginLogId);

	/**
	 * 根据适用范围查询系统角色
	 * @param map
	 * @return
	 */
	List<Role> queryRoleListByScope(String roleScope);
	
}
